OpenPlant Modeler Help

Expressions Manager

This tool allows you to create and manage Expressions against the class names in various contexts and categories. Based on the Context and Category, the OpenPlant Support Engineering program will pick the expression and use it when executing a script.

Expression Manager Keywords

The expansion of an expression works based on the following five keywords. All of these keywords are followed by a dot "." and property name which will be explained below.

  • ??NXT
  • ??NXTD
  • ??PRV
  • ??PRU
  • ??PJV
  • ??PJU

All of these keywords are followed by a dot "." and property name which will be explained below.

SettingDescription
??NXT NXT stands for next. It picks the sequence name from the sequence manager, increments the value and returns the value. You can define a new sequence in Sequence Manager and use it to get an incremental pointer.
Example: <??NXT.First>
This expression will be interpreted as pick sequence with name First from Sequence table, increment it with current incremental value and replace this expression with that number.
Based on the values in the Sequence Manager above, the value returned would be (1).
??NXTD Same as ??NXT. Only difference is that if a sequence is not defined then a sequence with given property will be created on the fly.
Example: <??NXT.PIPLIN>
This expression will read the pipeline property of current component that is globally set and return the value based on that. For example, if the line number of component is LXY, then it will create a LXY entry in sequence table and return the current value. If that entry is already in the sequence table then it will return the current incremented value.
??PRV PRV stands for Property value and this expression will get expanded based on current component set in the session and under processing.
Example: <??PRV.PIPLIN>
This will get expanded to line number property of the support in process.
??PRU PRU stands for property unit. This keyword is only valid for properties that have a unit of measure like length, weight etc.
Example: <??PRV.Weight>
It will return KG or LB based on the given unit set. Normally this expression is used in conjunction with PRV to report both dimensional value and its unit of measure.
??PJV PJV stands for Project value and it will return the constant value defined at the project level. Project value has a big deep hierarchy. These values can be set using the "Project Parameter" pane in Dashboard.
Example: <??PJV.Project.DGNStamp.ProjectName>
This expression will be translated to value defined at project level as shown below.
??PJU PJU stands for Project Unit and it will return the UOM value of a given project property. Again it will be used in conjunction with Project parameter value to report its unit.
Example: <??PJU.Environment.Geography. Elevation>
It will return the unit of elevation as set in project parameters.

Expression Manager Context

Currently, expressions are used in two contexts:

  • BOM
  • Tag

How each context is used is explained below.

BOM Context

BOM stands for Bill of Material and in this context there are three categories defined.

  • Support
  • General
  • Tag
SettingDescription
BOM: Support Support category is used to define a Bill of Material for a support based on the support Class Name.
The following example will dissect the PipeAttachments expression to detail how it works:
Note: For PipeAttachment this is the out of box expression defined that one can modify to get customized results. Before reading this make sure you know how the keyword works as explained in section above.
[<??PRV.PartType> <??PRV.CatalogTag>] <??PRV.Description> <??PRV.PrimSize> <??PRU.PrimSize>

PipeAttachment is the parent class of all supports that are in direct contact with piping components. If there is no explicit entry for a particular class then all piping supports will inherit this definition. If you want to change the behavior of various classes then individual entries can be made, or, changing something against this entry will change it for all pipe attachments.

When a support drawing is generated and a pipe attachment is encountered, then based on current support properties, this expression will be evaluated and data will be placed in the Bill of Material table.

In this expression PRV and PRU is used to pick data from the support property and put it into the Bill of Material table of the support drawing.

The PartType is the catalog identifier to uniquely identify the type of support. It's a property of the PipeAttachment class and its value gets printed out based on this.

If you attempt to place a clamp, the following property dialog displays where you select the type of clamp to place. Highlighted properties will get printed to bill of material based on this expression.

The following information will be output to the BOM on the Support Drawing:
To add the Catalog Name, you can modify the expression as below and it will print the Catalog Name.
[<??PRV.PartType> <??PRV.CatalogTag>] <??PRV.Standard> <??PRV.Description> <??PRV.PrimSize> <??PRU.PrimSize>
To view the different properties available, refer to Class Browser help.
BOM: General BOM Expressions in the General category work the same way as mentioned in previous section. However in this case one may want to see the project specific properties. For this section the pipe attachment get selected for reporting component properties e.g. linenumber, unit,&ldots;

Similarly some project properties are reported such as elevation.

The results in the support drawing will look similar to shown below:
Entries can be added\deleted in this section to see more or less properties.

BOM: Tag

To automatically populate the MS tags this entry is defined. The MS tag attributes name needs to be matched with the Expression name. The default properties can be seen below.

The template can be modified to define new tags and a corresponding entry can be made to automatically populate it. MicroStation tags are also synchronized with ProjectWise, so it can be used for ProjectWise enabled projects as well.

The default output information looks similar to below:

Tag Context

The other context in which expressions are used is for defining tags. Every class can have a different format for a tag. However out of the box tags are defined in a consistent way for pipe attachments. To achieve that a tag format is defined at a higher class level so the same format gets propagated to all of the classes underneath that. However different classes can be overridden to achieve the specific format according to project requirements.

PipeAttachment has the following three properties to uniquely identify the support on a given line and within an assembly:
  • SupportID
  • SupportMark
  • PartID
The default out of the box configuration dictates that Support ID uniquely identifies the support on a line. To achieve that the ??NXTD keyword is used which reads the line property of a support and assigns the unique number based on that.

SupportMark is the concatenation of line and support id to make the support tag readable but as well as unique on that line. This support mark can be customized consciously to make sure it will generate unique tag.

PartID is something internal and it is a sequence number to uniquely identify the number of support in the assembly.